import { ResPage, SysMail } from "@/api/interface/index";
import { CANROCNET } from "@/api/config/servicePort";
import http from "@/api";

/**
 * 新增站内信
 *
 * @param params 站内信表单
 * @returns 返回是否成功
 */
export const addMailApi = (params: SysMail.Form) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-mail/addition`, params);
};

/**
 * 编辑站内信
 *
 * @param params 站内信表单
 * @returns 返回是否成功
 */
export const editMailApi = (params: SysMail.Form) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-mail/edit`, params);
};

/**
 * 发布/撤回站内信
 *
 * @param params 站内信Id
 * @returns 返回是否成功
 */
export const switchPublishApi = (params: { id: string }) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-mail/publish`, params);
};

/**
 * 删除站内信
 *
 * @param params 站内信Id
 * @returns 返回是否成功
 */
export const deleteMailApi = (params: { ids: string[] }) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-mail/del`, params);
};

/**
 * 获取站内信详情
 *
 * @param params 站内信Id
 * @returns 返回站内信详情
 */
export const getMailApi = (id: string) => {
  return http.get<SysMail.Result>(`${CANROCNET}/api/sys-mail/data/${id}`);
};

/**
 * 获取站内信列表
 *
 * @param params 站内信查询参数
 * @returns 返回站内信列表
 */
export const getMailPageApi = (params: SysMail.PageParams) => {
  return http.get<ResPage<SysMail.PageResult>>(`${CANROCNET}/api/sys-mail/page`, params);
};
